In voice communications applications, such as a video conferencing system or voice interactions with a voice command device, it is important that users or customers have intelligible and echo-free conversations. Acoustic echo (i.e., when users hear back what they have spoken earlier), can be very detrimental and disruptive to the users' experience in voice communications.
To address the acoustic echo, an audio-processing component called an acoustic echo canceller (“AEC”) is often employed. An AEC can remove the echo generated from the far-end signal, e.g., the signal from the other end of a call being played back at a speaker, from the near-end signal. However, the fact that the far-end signal can undergo various types of delays before reaching the microphone increases the difficulty in acoustic echo cancellation. For example, hardware and software of a computing device might cause delay when storing and processing the far-end signal. Likewise, different types of hardware and software platforms can cause different amounts of delays. In addition, various acoustic paths from the speaker to the microphone can also introduce various amounts of delay. Further, these delays can change suddenly when the environment changes, such as when a device goes into or recovers from a low power state, when a Bluetooth device is plugged in the host device, when the device is moved around, and so on.
When the time delay between a near-end signal and a far-end signal is large, it often leads to the failure of common acoustic echo cancellation mechanisms and, consequently, can result in an echo in the near-end signal. As such, it is important to accurately estimate the delay between a near-end signal a far-end signal in voice communications, and to align the signals based on the estimated delay before performing acoustic echo cancellation. The accuracy of the delay estimation can greatly impact the performance of an acoustic echo canceller.
The disclosure made herein is presented with respect to these and other considerations.